home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_emacs.idb / usr / freeware / share / emacs / 19.34 / lisp / blessmail.el.z / blessmail.el
Encoding:
Text File  |  1998-10-28  |  2.5 KB  |  70 lines

  1. ;;; blessmail.el --- Decide whether movemail needs special privileges.
  2.  
  3. ;; Copyright (C) 1994 Free Software Foundation, Inc.
  4.  
  5. ;; Maintainer: FSF
  6. ;; Keywords: internal
  7.  
  8. ;; This file is part of GNU Emacs.
  9.  
  10. ;; GNU Emacs is free software; you can redistribute it and/or modify
  11. ;; it under the terms of the GNU General Public License as published by
  12. ;; the Free Software Foundation; either version 2, or (at your option)
  13. ;; any later version.
  14.  
  15. ;; GNU Emacs is distributed in the hope that it will be useful,
  16. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18. ;; GNU General Public License for more details.
  19.  
  20. ;; You should have received a copy of the GNU General Public License
  21. ;; along with GNU Emacs; see the file COPYING.  If not, write to the
  22. ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  23. ;; Boston, MA 02111-1307, USA.
  24.  
  25. ;;; Commentary:
  26.  
  27. ;; This is loaded into a bare Emacs to create the blessmail script,
  28. ;; which (on systems that need it) is used during installation
  29. ;; to give appropriate permissions to movemail.
  30. ;;
  31. ;; It has to be done from lisp in order to be sure of getting the
  32. ;; correct value of rmail-spool-directory.
  33.  
  34. ;;; Code:
  35.  
  36. ;; These are no longer needed because we run this in emacs instead of temacs.
  37. ;; (message "Using load-path %s" load-path)
  38. ;; (load "paths.el")
  39. ;; It is not safe to load site-init.el here, because it might have things in it
  40. ;; that won't load properly unless all the rest of Emacs is loaded.
  41.  
  42. (let ((dirname (directory-file-name rmail-spool-directory))
  43.       linkname attr modes)
  44.   ;; Check for symbolic link
  45.   (while (setq linkname (file-symlink-p dirname))
  46.     (setq dirname (if (file-name-absolute-p linkname)
  47.               linkname
  48.             (concat (file-name-directory dirname) linkname))))
  49.   (insert "#!/bin/sh\n")
  50.   (setq attr (file-attributes dirname))
  51.   (if (not (eq t (car attr)))
  52.       (insert (format "echo %s is not a directory\n" rmail-spool-directory))
  53.     (setq modes (nth 8 attr))
  54.     (cond ((= ?w (aref modes 8))
  55.        ;; Nothing needs to be done.
  56.        )
  57.       ((= ?w (aref modes 5))
  58.        (insert "chgrp " (number-to-string (nth 3 attr))
  59.            " $* && chmod g+s $*\n"))
  60.       ((= ?w (aref modes 2))
  61.        (insert "chown " (number-to-string (nth 2 attr))
  62.            " $* && chmod u+s $*\n"))
  63.       (t
  64.        (insert "chown root $* && chmod u+s $*\n"))))
  65.   (insert "echo mail directory = " dirname "\n"))
  66. (write-region (point-min) (point-max) "blessmail")
  67. (kill-emacs)
  68.  
  69. ;;; blessmail.el ends here
  70.